home *** CD-ROM | disk | FTP | other *** search
/ Die Speccy' 97 / Die Speccy' 97.iso / amiga_system / the_aminet / comm / bbs / wwbbs31_source.lha / WWBBS / Library / config.h < prev    next >
C/C++ Source or Header  |  1995-06-27  |  6KB  |  220 lines

  1. struct ConfigNode {
  2.     struct Node cn_Node;
  3.     struct SignalSemaphore cn_Semaphore;
  4.     UBYTE cn_Type;
  5.     struct Node *cn_Parent;
  6.     struct List *cn_Child;
  7.     BYTE cn_Name[33];
  8. };
  9.  
  10.  
  11. /* file commands */
  12.  
  13. #define CFGCMD_Begin  1
  14. #define CFGCMD_Child  2
  15. #define CFGCMD_End    3
  16. #define CFGCMD_Field  4
  17. #define CFGCMD_Parent 5
  18.  
  19.  
  20. /* field types */
  21.  
  22. #define CFGFLD_Name 0
  23.  
  24. #define AGFLD_AccessLevel 1
  25. #define AGFLD_SessionTimeLimit 3
  26. #define AGFLD_InactivityTimeLimit 4
  27. #define AGFLD_RatioByte 5
  28. #define AGFLD_RatioFile 6
  29. #define AGFLD_Days 7
  30.  
  31. #define ARCFLD_Extension 1
  32. #define ARCFLD_AddCommand 2
  33. #define ARCFLD_ExtractCommand 3
  34. #define ARCFLD_ViewCommand 4
  35.  
  36. #define EDFLD_Type 1
  37. #define EDFLD_Command 2
  38. #define EDFLD_Stack 3
  39.  
  40. #define FBFLD_AccessRange 1
  41. #define FBFLD_Group 2
  42. #define FBFLD_Directory 3
  43. #define FBFLD_DiskSpaceRequired 4
  44. #define FBFLD_Days 5
  45. #define FBFLD_Flags 6
  46.  
  47. #define MNFLD_AccessRange 1
  48. #define MNFLD_Character 2
  49. #define MNFLD_Default 3
  50. #define MNFLD_Number 4
  51. #define MNFLD_Buffer 5
  52.  
  53. #define MBFLD_AccessRange 1
  54. /*#define MBFLD_Group 2*/
  55. #define MBFLD_QuoteHeader 3
  56. #define MBFLD_Flags 4
  57. #define MBFLD_Days 5
  58. #define MBFLD_Group 6
  59.  
  60. #define NWSFLD_AccessRange 1
  61. #define NWSFLD_File 2
  62.  
  63. #define NDFLD_AccessRange 1
  64. #define NDFLD_Type 2
  65. #define NDFLD_Device 3
  66. #define NDFLD_Unit 4
  67. #define NDFLD_BufferSize 5
  68. #define NDFLD_Baud 6
  69. #define NDFLD_Flags 7
  70. #define NDFLD_Command 8
  71.  
  72. #define PRFLD_SendCommand 1
  73. #define PRFLD_ReceiveCommand 2
  74. #define PRFLD_Flags 3
  75.  
  76. /*#define SYSFLD_DisplayMode 1*/
  77. /*#define SYSFLD_FontName 2*/
  78. /*#define SYSFLD_FontSize 3*/
  79. /*#define SYSFLD_FontFlags 4*/
  80. #define SYSFLD_InputColor 5
  81. #define SYSFLD_HeaderColor 6
  82. #define SYSFLD_OutputColor 7
  83. #define SYSFLD_PromptColor 8
  84. #define SYSFLD_SystemColor 9
  85. /*#define SYSFLD_LogDays 10*/
  86. /*#define SYSFLD_OfflineDirectory 11*/
  87. #define SYSFLD_Flags 12
  88. #define SYSFLD_FileIDDizExtractor 13
  89.  
  90.  
  91. /* structures */
  92.  
  93. struct AccessGroupNode {
  94.     struct ConfigNode agn_Node;
  95.     UBYTE agn_AccessLevel;
  96.     UWORD agn_SessionTimeLimit;
  97.     UWORD agn_InactivityTimeLimit;
  98.     UBYTE agn_RatioByte;
  99.     UBYTE agn_RatioFile;
  100.     ULONG agn_Days;
  101. };
  102.  
  103. struct ArchiverNode {
  104.     struct ConfigNode an_Node;
  105.     BYTE an_Extension[4];
  106.     BYTE an_AddCommand[256];
  107.     BYTE an_ExtractCommand[256];
  108.     BYTE an_ViewCommand[256];
  109. };
  110.  
  111. struct EditorNode {
  112.     struct ConfigNode en_Node;
  113.     UBYTE en_Type;
  114.     BYTE en_Command[256];
  115.     ULONG en_Stack;
  116. };
  117.  
  118. struct FileBaseNode {
  119.     struct ConfigNode fbn_Node;
  120.     BYTE fbn_AccessRange[21];
  121.     BYTE fbn_Group[41];
  122.     BYTE fbn_Directory[256];
  123.     ULONG fbn_DiskSpaceRequired;
  124.     ULONG fbn_Days;
  125.     ULONG fbn_Flags;
  126. };
  127.  
  128. #define FBFLG_ReadOnly (1<<0)
  129. #define FBFLG_AutoJoin (1<<1)
  130.  
  131. struct MenuNode {
  132.     struct ConfigNode mn_Node;
  133.     BYTE mn_AccessRange[21];
  134.     BYTE mn_Character;
  135.     BYTE mn_Default;
  136.     BYTE mn_Number;
  137.     BYTE mn_Buffer[64]; /* prompt/cmd */
  138. };
  139.  
  140. struct MessageBaseNode {
  141.     struct ConfigNode mbn_Node;
  142.     BYTE mbn_AccessRange[21];
  143.     BYTE mbn_Group[21];
  144.     BYTE mbn_QuoteHeader[81];
  145.     ULONG mbn_Days;
  146.     ULONG mbn_Flags;
  147. };
  148.  
  149. #define MBFLG_ReadOnly (1<<0)
  150. #define MBFLG_AutoJoin (1<<1)
  151.  
  152. struct NewsNode {
  153.     struct ConfigNode nn_Node;
  154.     BYTE nn_AccessRange[21];
  155.     BYTE nn_File[256];
  156. };
  157.  
  158. struct NodeNode {
  159.     struct ConfigNode nn_Node;
  160.     BYTE nn_AccessRange[21];
  161.     UBYTE nn_Type;
  162.     BYTE nn_Device[33];
  163.     ULONG nn_Unit;
  164.     ULONG nn_BufferSize;
  165.     ULONG nn_Baud;
  166.     ULONG nn_Flags;
  167.     BYTE nn_Command[256];
  168. };
  169.  
  170. #define NDFLG_Handshaking (1<<0)
  171. #define NDFLG_AutoBaud (1<<1)
  172. #define NDFLG_FrontEnd (1<<2)
  173.  
  174. struct ProtocolNode {
  175.     struct ConfigNode pn_Node;
  176.     BYTE pn_SendCommand[256];
  177.     BYTE pn_ReceiveCommand[256];
  178.     ULONG pn_Flags;
  179. };
  180.  
  181. #define PRFLG_Batch (1<<0)
  182. #define PRFLG_Bidirectional (1<<1)
  183.  
  184. struct SystemNode {
  185.     struct ConfigNode sn_Node;
  186.     ULONG sn_DisplayMode;
  187.     BYTE sn_FontName[33];
  188.     UWORD sn_FontSize;
  189.     UBYTE sn_FontFlags;
  190.     BYTE sn_InputColor[81];
  191.     BYTE sn_HeaderColor[81];
  192.     BYTE sn_OutputColor[81];
  193.     BYTE sn_PromptColor[81];
  194.     BYTE sn_SystemColor[81];
  195. /*    ULONG sn_LogDays;*/
  196. /*    BYTE sn_OfflineDirectory[256];*/
  197.     BYTE sn_FileIDDizExtractor[81];
  198.     ULONG sn_Flags;
  199. };
  200.  
  201. #define SYSFLG_OnlyRealNames (1<<0)
  202.  
  203. /* tag attrs */
  204.  
  205. Tag cfg_get_tags[]={ CFGTAG_Path,CFGTAG_Name,CFGTAG_Type,CFGTAG_Parent,CFGTAG_Child,CFGTAG_GetFirst,CFGTAG_GetLast,CFGTAG_GetNext,CFGTAG_GetPrevious,CFGTAG_Next,CFGTAG_NextReturn,TAG_END };
  206. Tag cfg_set_tags[]={ CFGTAG_Path,CFGTAG_Name,CFGTAG_NewName,CFGTAG_MoveUp,CFGTAG_MoveDown,CFGTAG_ForceSave,CFGTAG_DontSave,TAG_END };
  207. Tag cfg_add_tags[]={ CFGTAG_Path,CFGTAG_Name,CFGTAG_Type,CFGTAG_DontSave,TAG_END };
  208. Tag cfg_rem_tags[]={ CFGTAG_Path,CFGTAG_Name,CFGTAG_DontSave,TAG_END };
  209.  
  210. Tag accessgroup_tags[]={ AGTAG_AccessLevel,AGTAG_SessionTimeLimit,AGTAG_InactivityTimeLimit,AGTAG_RatioByte,AGTAG_RatioFile,AGTAG_Days,TAG_END };
  211. Tag archiver_tags[]={ ARCTAG_Extension,ARCTAG_AddCommand,ARCTAG_ExtractCommand,ARCTAG_ViewCommand,TAG_END };
  212. Tag editor_tags[]={ EDTAG_Type,EDTAG_Command,EDTAG_Stack,TAG_END };
  213. Tag filebase_tags[]={ FBTAG_AccessRange,FBTAG_Group,FBTAG_Directory,FBTAG_DiskSpaceRequired,FBTAG_Days,FBTAG_ReadOnly,FBTAG_AutoJoin,TAG_END };
  214. Tag menu_tags[]={ MNTAG_AccessRange,MNTAG_Character,MNTAG_Default,MNTAG_Number,MNTAG_Prompt,MNTAG_Command,TAG_END };
  215. Tag messagebase_tags[]={ MBTAG_AccessRange,MBTAG_Group,MBTAG_QuoteHeader,MBTAG_Days,MBTAG_ReadOnly,MBTAG_AutoJoin,TAG_END };
  216. Tag news_tags[]={ NWSTAG_AccessRange,NWSTAG_File,TAG_END };
  217. Tag node_tags[]={ NDTAG_AccessRange,NDTAG_Type,NDTAG_Device,NDTAG_Unit,NDTAG_BufferSize,NDTAG_Baud,NDTAG_Handshaking,NDTAG_AutoBaud,NDTAG_FrontEnd,NDTAG_Command,TAG_END };
  218. Tag protocol_tags[]={ PRTAG_SendCommand,PRTAG_ReceiveCommand,PRTAG_Batch,PRTAG_Bidirectional,TAG_END };
  219. Tag system_tags[]={ SYSTAG_InputColor,SYSTAG_HeaderColor,SYSTAG_OutputColor,SYSTAG_PromptColor,SYSTAG_SystemColor,SYSTAG_OnlyRealNames,SYSTAG_FileIDDizExtractor,TAG_END };
  220.